package com.bestdreamer.thread_status;

public class StartDeadThread extends Thread{
    private int i ;
    public void run(){
        for( ; i < 100; i++){
            System.out.println(getName() + " " + i);
        }
    }

    public static void main(String[] args){
        StartDeadThread sdt = new StartDeadThread();
        for( int i = 0; i < 300; i ++){
            System.out.println(Thread.currentThread().getName()+" "+ i);
            if(i == 20){
                sdt.start();
                // 判断启动后线程的 isAlive() 值，输出 true
                System.out.println(sdt.isAlive());
            }
            // 当线程处于新建、死亡两种状态时，isAlive() 方法返回 false
            // 当 i > 20时，该线程肯定已经启动过了，如果 sdt.isAlive() 为假时，那就是死亡状态了。
            if(i > 20 && !sdt.isAlive()){
                // 试图再次启动该线程
                sdt.start();
            }
        }
    }

}
